/*
	File:		CreditState.cpp
	Course:		SGD 1301
	Author:		Peter Nguyen
	Purpose:	CCreditState class handles the credit menu
*/

#pragma once

#include "IGameState.h"


// Wrappers
class CSGD_DirectInput;
class CSGD_TextureManager;
class CBitmapFont;



////////////////////////////////////////////////////////////
// CCreditState class
//	- game state to handle main menu
class CCreditState : public IGameState
{
public:
	////////////////////////////////////////////////////////
	// SINGLETON!
	static CCreditState* GetInstance( void );
	
	
	////////////////////////////////////////////////////////
	// IGameState Interface:
	virtual void	Enter	( void );			// load resources
	virtual void	Exit	( void );			// unload resources

	virtual bool	Input	( void );			// handle user input
	virtual void	Update	( float fElapsedTime );	// update game entities
	virtual void	Render	( void );			// render game entities
	

private:
	////////////////////////////////////////////////////////
	// Singleton - not dynamically allocated
	CCreditState( void );
	virtual ~CCreditState( void );
	CCreditState( const CCreditState& );
	CCreditState& operator= ( const CCreditState& );
	
	////////////////////////////////////////////////////////
	// Wrappers
	CSGD_DirectInput*		m_pDI;
	CSGD_TextureManager*	m_pTM;
	CBitmapFont*			m_pFont;

private:
	float startPositionY;
	bool  isEndPositionSet;
	float endPositionY;
	float exitTimer;
	float scrollSpeedY;
};

